package com.wocharging.wxapp.result;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 列表视图模型
 */
@Data
@ApiModel(value = "列表视图模型", description = "")
public class ResultList<T> {

    /**
     * 数据对象
     */
    @ApiModelProperty("列表对象")
    private List<T> list;

    /**
     * 总数
     */
    @ApiModelProperty("总页数")
    private long total;

    /**
     * 初始化一个新创建的 Result 对象，使其表示一个空消息。
     */
    public ResultList() {
    }

    /**
     * 初始化一个新创建的 Result 对象
     *
     * @param total 总数
     * @param list  数据对象
     */
    public ResultList(long total, List<T> list) {
        this.list = list;
        this.total = total;

    }

    /**
     * 初始化一个新创建的 Result 对象
     *
     * @param page 总数
     */
    public ResultList(Page<T> page) {
        this.list = page.getRecords();
        this.total = page.getTotal();

    }

    /**
     * 新建一个对象
     *
     * @param total 总数
     * @param list  数据对象
     * @return 成功消息
     */
    public static <T> ResultList<T> NoW(long total, List<T> list) {
        return new ResultList(total, list);
    }


}